home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 1.iso / games / yowsrc12.zip / YOWSUPP.C < prev    next >
C/C++ Source or Header  |  1991-09-11  |  3KB  |  114 lines

  1. //
  2. // YOWSUPP - yow! supporting functions!
  3. //
  4. // Version: 1.0 Copyright (C) 1991, Lantern Corp.
  5. // Author: Edward Hutchins
  6. // Revisions:
  7. // 09/11/91 added this file to reduce YOW segment size - Ed.
  8. //
  9.  
  10. #include "yow.h"
  11.  
  12. //
  13. // imports
  14. //
  15.  
  16. IMPORT HANDLE   hAppInst;
  17. IMPORT HWND     hAppWnd;
  18. IMPORT CHAR     szAppName[8];
  19. IMPORT CHAR     szDBase[FILENAME_SIZE];
  20. IMPORT CHAR     szEndChar[2];
  21.  
  22. //
  23. // CreateYowClass - create the class of Yow's window
  24. //
  25.  
  26. BOOL FAR PASCAL CreateYowClass( VOID )
  27. {
  28.     WNDCLASS        Class;
  29.  
  30.     // load the name from the resource file
  31.     LoadString( hAppInst, IDS_NAME, szAppName, sizeof(szAppName) );
  32.  
  33.     Class.style = CS_HREDRAW | CS_VREDRAW | CS_BYTEALIGNCLIENT;
  34.     Class.lpfnWndProc = YowWndProc;
  35.     Class.cbClsExtra = 0;
  36.     Class.cbWndExtra = 0;
  37.     Class.hInstance = hAppInst;
  38.     Class.hIcon = LoadIcon( hAppInst, MAKEINTRESOURCE( IDI_YOW ) );
  39.     Class.hCursor = LoadCursor( NULL, IDC_ARROW );
  40.     Class.hbrBackground = COLOR_BTNFACE + 1;
  41.     Class.lpszMenuName = NULL;
  42.     Class.lpszClassName = szAppName;
  43.  
  44.     return( RegisterClass( &Class ) );
  45. }
  46.  
  47. //
  48. // SetYowMenu - add yow's menu items to the system menu
  49. //
  50.  
  51. VOID NEAR PASCAL SetYowMenu( HWND hWnd, INT nFirstID, INT nLastID )
  52. {
  53.     CHAR        szMenuName[40];
  54.     HMENU       hMenu;
  55.  
  56.     hMenu = GetSystemMenu( hWnd, TRUE );
  57.     if (hMenu == HNULL) hMenu = GetSystemMenu( hWnd, FALSE );
  58.     if (hMenu == HNULL) return;
  59.  
  60.     // delete unwanted menu items
  61.     DeleteMenu( hMenu, SC_RESTORE, MF_BYCOMMAND );
  62.     DeleteMenu( hMenu, SC_SIZE, MF_BYCOMMAND );
  63.     DeleteMenu( hMenu, SC_MINIMIZE, MF_BYCOMMAND );
  64.     DeleteMenu( hMenu, SC_MAXIMIZE, MF_BYCOMMAND );
  65.  
  66.     while (nFirstID <= nLastID)
  67.     {
  68.         LoadString( hAppInst, nFirstID, szMenuName, sizeof(szMenuName) );
  69.         ChangeMenu( hMenu, 0, szMenuName, nFirstID, MF_APPEND );
  70.         ++nFirstID;
  71.     }
  72. }
  73.  
  74. //
  75. // CreateYowWindow - open the Yow window
  76. //
  77.  
  78. HWND FAR PASCAL CreateYowWindow( INT nCmdShow )
  79. {
  80.     HWND        hWnd;
  81.  
  82.     hWnd = CreateWindow( szAppName, szAppName,
  83.                          WS_OVERLAPPEDWINDOW,
  84.                          CW_USEDEFAULT, 0, CW_USEDEFAULT, 0,
  85.                          HNULL, HNULL, hAppInst, NULL );
  86.     if (hWnd == HNULL) return( HNULL );
  87.     ShowWindow( hWnd, nCmdShow );
  88.     UpdateWindow( hWnd );
  89.     SetYowMenu( hWnd, IDM_OPTIONS, IDM_ABOUT );
  90.     return( hWnd );
  91. }
  92.  
  93. //
  94. // SetYowDBase - set the lines database
  95. //
  96.  
  97. VOID FAR PASCAL SetYowDBase( LPSTR lpszFile )
  98. {
  99.     CHAR            szProp[40];
  100.  
  101.     if (!lpszFile || *lpszFile == '\0')
  102.     {
  103.         LoadString( hAppInst, IDS_PRPDEFDBASE, szProp, sizeof(szProp) );
  104.         LoadString( hAppInst, IDS_DEFDBASE, szDBase, sizeof(szDBase) );
  105.         GetProfileString( szAppName, szProp, szDBase, szDBase, sizeof(szDBase) );
  106.     }
  107.     else lstrcpy( szDBase, lpszFile );
  108.  
  109.     LoadString( hAppInst, IDS_PRPDEFENDCHAR, szProp, sizeof(szProp) );
  110.     LoadString( hAppInst, IDS_DEFENDCHAR, szEndChar, sizeof(szEndChar) );
  111.     GetProfileString( szAppName, szProp, szEndChar, szEndChar, sizeof(szEndChar) );
  112. }
  113.  
  114.